איך אני יכול לנתק מישהו אחרי כמה זמן שהוא לא פעיל?
נגיד כמו ב PMA.

תודה :)

6 תשובות

avatar ענה intval ב 17 ליוני 2014 #

באופן כללי תוכל להגדיר משך חיים מסוים לקוקי של הסשן באמצעות הפקודה session_set_cookie_params
בפרמטר lifetime שים את הערך הרצוי בשניות.

הקוקי יפוג (ואיתו הסשן) לאחר זמן מה.
PHP תדאג לעדכן את הקוקי אחרי כל בקשה לשרת כדי למשוך את משך החיים של משתמשים פעילים.
לאחר שהסשן יפוג, תצטרך בכל עמוד לבדוק את הסשן - ואם הוא לא קיים - להעביר לעמוד ההתחברות.

avatar ענה Expl0de ב 17 ליוני 2014 #

אבל איך אני אדע אם המשתמש לא פעיל?
אני רוצה שה session_set_cookie_params יפעל רק אחרי 15 דקות ללא פעילות (לדוגמא).

avatar ענה intval ב 17 ליוני 2014 #

אתה בעצמך לא צריך לדעת שום דבר.
לכל קוקי יש אורך חיים מסוים, שלאחר מכן הדפדפן מוחק את אותו הקוקי.
באמצעות הפקודה הזו תוכל לומר לדפדפן מה אורך החיים הרצוי. אתה לא צריך להפעיל את הפונקציה בעצמך לאחר 15 דקות. הדפדפן ימחק את הקוקי 15 דקות לאחר שהקוקי נוצר או התעדכן לאחרונה. את העדכון לאחרונה PHP תעשה בעמצה בכל בקשה לשרת בלי שאתה תצטרך לעשות משהו.

avatar ענה Expl0de ב 17 ליוני 2014 #

לא נראה לי שהבנת את השאלה שלי,
אם אתה יוצר קוקי, היא נמחקת אחרי כמה זמן (15 דקות לדוגמא).
אז איך אני עושה שהיא כן תימחק אחרי 15 דקות אבל רק אם אין פעילות.
אתה אומר שאני צריך ליצור אותה כל פעם מחדש כאשר אני מבצע פעולה? לא הבנתי

avatar ענה intval ב 17 ליוני 2014 #

אם בתחלית העמוד יש לך את השורה session_start
אז אתה לא צריך לעשות שום דבר. PHP בעצמה תעדכן את הקוקי לפלוס 15 דקות.

איך זה עובד:
השעה 12:00

בקשה לשרת -> session_start -> השרת שולח לדפדפן קוקי שהדפדפן ימחק בעוד פלוס 15 דקות 12:15 -> לא צריך לעשות שום דבר, הדפדפן ימחק לבד.

בקשה נוספת לשרת לאחר 3 דקות 12:03 -> עוד פעם session_start -> השרת שולח לדפדפן את אותו הקוקי ששוב ימחק בעוד פלוס 15 דקות. 12:18 -> לא צריך לעשות שום דבר. הדפדפן ימחק את הקוקי לבד ב 12:18

שוב פעם:
את העדכון לאחרונה PHP תעשה בעמצה בכל בקשה לשרת בלי שאתה תצטרך לעשות משהו (חוץ מלקרוא ל session_start).

avatar ענה Expl0de ב 18 ליוני 2014 #

תודה :)
עכשיו הבנתי למה אתה מתכוון.